const BAM = wx.getBackgroundAudioManager()
let data = null;
let index = -1;
let musicList = [];
let app = getApp();
Page({

    /**
     * 页面的初始数据
     */
    data: {
        picUrl: "",
        isPlay: false,
        isShow: false, // 是否显示歌词组件，默认是不显示的
        lyrics: "暂无歌词",
        isSame: false, // 是否是同一个音乐，如果是同一个音乐，点击时接着播放，不能重新播放
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        console.log("options:", options);
        index = parseInt(options.index);
        let id = options.id;
        musicList = wx.getStorageSync("musicList");


        this.getsongUrl(id)
    },

    // 上一曲
    prev() {
        index--;
        if (index < 0) {
            index = musicList.length - 1;
        }
        this.getsongUrl(musicList[index].id)
    },
    // 下一典
    next() {
        index++;
        if (index === musicList.length) {
            index = 0;
        }
        this.getsongUrl(musicList[index].id)
    },

    // 播放与暂停
    toggleState() {
        this.data.isPlay ? BAM.pause() : BAM.play();
        this.setData({
            isPlay: !this.data.isPlay
        })
    },

    // 获取音乐的mp3
    getsongUrl(id) {
        if (id == app.getMusicId()) {
            this.setData({
                isSame: true
            })
        } else {
            this.setData({
                isSame: false
            })
        }

        if (!this.data.isSame) {
            BAM.stop(); // 在获取音乐mp3时，可以先把音乐停下来
        }

        wx.showLoading({
            title: '加载中...',
        })

        data = musicList[index];
        app.setMusicId(id)
        wx.setNavigationBarTitle({
            title: data.name,
        })
        this.setData({
            picUrl: data.al.picUrl
        })

        wx.cloud.callFunction({
            name: "music",
            data: {
                id,
                $url: "songURL"
            }
        }).then(res => {
            // console.log("音乐的数据：", res);
            // res.result.data[0].url 
            if (!this.data.isSame) {
                BAM.src = res.result.data[0].url;
                BAM.title = data.name;
                BAM.coverImgUrl = data.al.picUrl;
                BAM.singer = data.ar[0].name;
                BAM.epname = data.al.name;
            }
            this.setData({
                isPlay: true
            })

            // 得到歌曲的mp3之后，去获取歌词
            wx.cloud.callFunction({
                name: "music",
                data: {
                    id,
                    $url: "lyrics"
                }
            }).then(res => {
                if (res.result.lrc) {
                    this.setData({
                        lyrics: res.result.lrc.lyric
                    })
                }
            })

            wx.hideLoading()
        })
    },
    // 接收子传递过来的currentTime
    timeUpdate(e) {
        // console.log("父接收到子传递的currentTime:", e.detail.currentTime);
        this.selectComponent(".lyric").update(e.detail.currentTime)
    },

    // 歌词是否显示
    toggleShow() {
        this.setData({
            isShow: !this.data.isShow
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})